Repository navigation
docs(skills): drop the removed feature_flags settings manifest from plugin-development - #30726
Conversation
…lugin-development The objectstack-platform plugin-development reference still taught a `feature_flags` settings manifest (`ai_enabled` / `beta_*`, `OS_FEATURE_FLAGS_*`). service-settings no longer serves that namespace, so the bullet now gives the live answer: a plugin that needs an org toggle declares its own SettingsManifest and registers it on the `settings` service. Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WV4d1cT65NsbTucMW55wZ
|
domain:skills#1 · os-elon-musk · session_016WV4d1mkgEris4MHHLjtnk Contract-review-claim: session_016WV4d1mkgEris4MHHLjtnk · head 997decb · 2026-11-05T23:38Z |
|
domain:skills#1 · os-elon-musk · session_016WV4d1mkgEris4MHHLjtnk Contract reviewServed-tier: ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgment
should-fix 1 (optional, not blocking): the bullet could name the entry point in one phrase ( Implemented-by: VERDICT: PASS |
|
domain:skills#1 · os-elon-musk · session_016WV4d1mkgEris4MHHLjtnk 维护者速读
席位核对 — ACCEPT · head 997decb
|
Requested by Elon · project thread
Fixes #30275
Clause-②: no
Metadata-protocol: none
维护者速读
objectstack-platform技能包的插件开发参考页里,删掉「feature_flags设置清单(ai_enabled/beta_*、OS_FEATURE_FLAGS_*)」这条,改成现行答案:插件需要组织级开关时,自己声明一份设置清单并注册到settings服务。skills/objectstack-platform/references/plugin-development.md的「Feature Flags」节第一条;②.changeset/30275-plugin-dev-feature-flags-bullet.md。node scripts/check-skills-token-ratchet.mjs | grep plugin-development,预期 3125 tokens(上限 3137),且git grep -n feature_flags -- skills/无输出。skills/**属 Tier H,需人合)。What changes
skills/objectstack-platform/references/plugin-development.md, section "Feature Flags": the bullet teaching afeature_flagssettings manifest (ai_enabled/beta_*toggles, env overrides viaOS_FEATURE_FLAGS_*) is replaced by the live answer: there is no shared flags namespace; a plugin that needs an org toggle declares its ownSettingsManifestand registers it on thesettingsservice (ADR-0007 cascade). The next bullet (PUBLIC_AUTH_FEATURES, the deployment-level capability flags) is unchanged..changeset/30275-plugin-dev-feature-flags-bullet.md:'@objectstack/skills': patch, with both declaration lines.Why
PR #30272 (#30204) removed the
feature_flagsnamespace from@objectstack/service-settings. Onorigin/mainbadf24df,builtinSettingsManifestsno longer lists it, andsettings-service.test.tspinsgetManifest('feature_flags')toSETTINGS_UNKNOWN_NAMESPACEwithOS_FEATURE_FLAGS_AI_ENABLEDset and inert. A customer agent reading the old bullet would write checks against a namespace that is refused, or tell an administrator to set an env var that does nothing.The replacement is read off
maincode:SettingsManifestis re-exported from@objectstack/service-settings"so plugin authors only need one import" (src/index.ts),SettingsServicePluginregisters its service under'settings'(settings-service-plugin.ts), andSettingsService.registerManifest(manifest)is a public method (settings-service.ts).Tests
Docs-only change in the published skills bundle; no code or test changed.
Size readings (
node scripts/check-skills-token-ratchet.mjs, both on this tree):references/plugin-development.md: 359 → 358 lines, 3137 → 3125 tokens (ceiling 3137, unchanged).objectstack-platform, all SKILL.md: unchanged (no SKILL.md touched).Acceptance notes
git grep -n -i 'feature_flags\|OS_FEATURE_FLAGS'overskills/**onorigin/mainbadf24dfhits only the three lines of this bullet. No eval of any package prompts for them, so no eval is edited (andevals/config-plugins-ops.json, held by PR docs(skills): teach the declared action override and its access-widening refusal #30704, is untouched).main.Verification
Local gates on head
997decb3(after mergingorigin/main): the 43 familiesnode scripts/pm/dispatch-gates.mjs --commandsderives from this diff, pluspnpm lint(exit 0).--ranreconciliation: 43 derived, 41 run green, 2 NOT MEASURED, 0 unrun.NOT MEASURED (declared narrowing):
check:dual-build-cjs-loadsandcheck:lean-entry-closureexit 3 (prerequisite: builtdist/for every package). They judge build output, which a Markdown edit and a changeset cannot move; no whole-tree build was run for an S docs card, and CI runs them on a built tree.Gate exit codes (head 997decb)
Token ratchet (head 997decb)
Generated by Claude Code